<?php
//Контроллер BackEnd
class CatalogCategoryController extends BackEndController
{
    //public $layout='//layouts/column2';
    
    //Фильтр доступа для grud операции
    public function filters()
    {
        return array(
            'rights',
        );
    }
    
    public function actions()
    {
        return array(
            'connector' => array(
                'class' => 'ext.elFinder.ElFinderConnectorAction',
                'settings' => array(
                    'root' => Yii::getPathOfAlias('webroot') . '/uploads/',
                    'URL' => Yii::app()->baseUrl . '/uploads/',
                    'rootAlias' => 'Home',
                    'mimeDetect' => 'none'
                )
            ),
        );
    }
    
    //Создать категорию
    public function actionCreate()
    {
        $model=new CatalogCategory;
        if(isset($_POST['CatalogCategory']))
        {
            $event = (int)$_POST['event'];
            $model->attributes=$_POST['CatalogCategory'];
            if($model->save()){
                if ($event == 0){
                    $this->setNotice(
                        array(
                            array(
                            'title' => Yii::t('system', 'CatalogCategory'),
                            'text'  => Yii::t('system', 'Сохранено'),
                            'type'  => 'success'
                            ),
                        ));
                    $this->redirect(array('view','id'=>$model->id));
                }
                else {
                    $this->setNotice(
                                  array(
                                    array(
                                    'title' => Yii::t('system', 'CatalogCategory'),
                                    'text'  => Yii::t('system', 'Сохранено'),
                                    'type'  => 'success'
                                    ),
                                    array(
                                    'title' => Yii::t('system', 'CatalogCategory'),
                                    'text'  => Yii::t('system', 'Можете продолжить дополнение.'),
                                    'type'  => 'info'
                                    ),
                                  )
                            );
                      $this->redirect(array('create'));  
                }
            }
        }
        $this->render('create',array(
                'model'=>$model,
        ));
    }

    //Обновить категорию
    public function actionUpdate($id)
    {
        $model = $this->loadModel($id);
        if(isset($_POST['CatalogCategory']))
        {
            $model->attributes=$_POST['CatalogCategory'];
            if($model->save()){
                $this->setNotice(
                   array(
                        array(
                        'title' => Yii::t('system', 'CatalogCategory'),
                        'text'  => Yii::t('system', 'Информация успешно обновлена.'),
                        'type'  => 'success'
                        ),
                   ));
                $this->redirect(array('view','id'=>$model->id));
            }
        }
        $this->render('update',array(
                'model'=>$model,
        ));
    }

    //Удалить категорию
    public function actionDelete($id)
    {
        if(Yii::app()->request->isPostRequest)
        {
            $this->loadModel($id)->delete();
            if(!isset($_GET['ajax']))
                $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
        }
        else
            throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
    }

    //Менеджер категорий
    //Страница управления
    public function actionIndex()
    {
        $model=new CatalogCategory('search');
        $model->unsetAttributes();
        if(isset($_GET['CatalogCategory']))
            $model->attributes=$_GET['CatalogCategory'];

        $this->render('index',array(
                'model'=>$model,
        ));
    }

    //Загрузка модели
    public function loadModel($id)
    {
        $model=CatalogCategory::model()->findByPk($id);
        if($model===null)
                throw new CHttpException(404,'The requested page does not exist.');
        return $model;
    }
    
    //Валидация ajax
    protected function performAjaxValidation($model)
    {
        if(isset($_POST['ajax']) && $_POST['ajax']==='catalog-category-form')
        {
            echo CActiveForm::validate($model);
            Yii::app()->end();
        }
    }
}